export default defineComponent({
    props: {
        // 图片地址
        src: {
            type: String,
            default: ""
        },
        // 宽度（单位：px）
        width: {
            type: [String, Number],
            default: "auto"
        },
        // 高度（单位：px）
        height: {
            type: [String, Number],
            default: "auto"
        },
        // 裁剪模式
        mode: {
            type: String as PropType<ModeImageType>,
            default: "scaleToFill",
            validator(value: string): boolean
            {
                return ["scaleToFill", "aspectFit", "aspectFill", "widthFix", "heightFix", "top", "bottom", "center", "left", "right", "top left", "top right", "bottom left", "bottom right"].includes(value);
            }
        },
        // 图片形状，circle-圆形，square-方形
        shape: {
            type: String as PropType<"circle" | "square">,
            default: "square",
            validator(value: string): boolean
            {
                return ["circle", "square"].includes(value);
            }
        },
        // 圆角（单位：px）
        radius: {
            type: [String, Number] as PropType<SizeType | string | number>,
            default: 0
        },
        // 过渡动画持续时长（单位：ms）
        duration: {
            type: [String, Number],
            default: 300
        },
        // 加载中的图标，或者小图片
        loadingIcon: {
            type: String,
            default: "photo"
        },
        // 加载中的图标颜色
        loadingIconColor: {
            type: String,
            default: "#c8c9cc"
        },
        // 加载中的图标大小（单位：px）
        loadingIconSize: {
            type: [String, Number],
            default: 20
        },
        // 加载失败的图标，或者小图片
        errorIcon: {
            type: String,
            default: "photo-fail"
        },
        // 加载失败的图标颜色
        errorIconColor: {
            type: String,
            default: "#c8c9cc"
        },
        // 加载失败的图标大小（单位：px）
        errorIconSize: {
            type: [String, Number],
            default: 20
        },
        // 是否显示加载中的图标或者自定义的slot
        showLoading: {
            type: Boolean,
            default: true
        },
        // 是否显示加载失败的图标或者自定义的slot
        showError: {
            type: Boolean,
            default: true
        },
        // 加载中图片背景色
        loadingBackgroundColor: {
            type: String,
            default: "#f3f4f6"
        },
        // 是否需要淡入效果
        fade: {
            type: Boolean,
            default: true
        },
        // 是否启用懒加载
        lazyLoad: {
            type: Boolean,
            default: true
        },
        // 开启长按图片显示识别微信小程序码菜单
        showMenuByLongPress: {
            type: Boolean,
            default: true
        },
        // 是否阻止事件传播
        stop: {
            type: Boolean,
            default: false
        },
        // 是否阻止事件默认行为
        prevent: {
            type: Boolean,
            default: false
        }
    }
});